package cn.com.idmy.id.segment.policy;

import java.math.BigDecimal;

/**
 * 缓存id的拉取策略
 */
public interface FetchPolicy {

    /**
     * 是否开启threadLocal缓存
     */
    boolean threadLocalCacheEnabled();

    /**
     * threadLocal缓存一次拉取的数量
     */
    int threadLocalFetchSize(String key);

    /**
     * segment一次拉取的数量
     */
    int segmentFetchSize(String key);

    /**
     * 当前segment使用超过此比例的是时候,会填充下一个segment
     */
    BigDecimal nextSegmentFetchPercent(String key);
}
